package cn.itcast.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import cn.itcast.domain.Post;

/**
 * Post接口方法,实现增删改查
 * @author 16604
 *
 */
public interface PostMapper {
	
	//插入post
	void insertPost(Post post);
	
	//根据id删除
	void deletePost(Integer id);
	
	//更新post
	void updatePost(Post post);
	
	//根据id查询
	Post findById(Integer id);
	
	//模糊查询，根基title
	List<Post> findByTitle(String title);
	
	//使用嵌套的pojo封装多个查询参数
	List<Post> findByCategoryAndPost(Post post);
	
	//使用多个形参，传递多个查询参数,param是给映射文件用的
	List<Post> findByCidAndTitle(
			@Param("cid") Integer id,@Param("title") String title);
	
	//使用map集合传递参数
	List<Post> findByCidAndTitleByMap(Map<String,Object> map);
	
	//查询多少用户
	int getPostCount();
	
	//resultMap
	Post findByIdResultMap(Integer id);
	
	//根据多个条件搜索post：（title，content，created）,传过来的对象封装进去一个post对象
	List<Post> findByCondition(Post post);
	
	//更新Post表，但是不更新传入为空的值
	void updateIgnoreNullPost(Post post);
	
	//根据多个id查询post
	List<Post> findByids(int[] ids);
	
	//批量插入
	void insertList(List<Post> post);
	
}
